Skip to content

0.11.0#342

Merged
kaste merged 13 commits intomainfrom
next
Mar 3, 2026
Merged

0.11.0#342
kaste merged 13 commits intomainfrom
next

Conversation

@kaste
Copy link
Copy Markdown
Collaborator

@kaste kaste commented Mar 3, 2026

No description provided.

kaste added 11 commits March 3, 2026 12:45
Introduce a new scripts.snapshot_test command that can create reduced
registry/channel snapshots and compare them with a line-based diff.
The default mode performs the standard workflow: create/overwrite
snapshot.yml when no base exists, otherwise write a timestamped snapshot
(.yml) and compare it against the base.

The implementation captures stdout/stderr from generate_registry, crawl,
and generate_channel into a snapshot.log file inside the temp directory.
It keeps the temp directory on failure for inspection, and removes it on
success.

Also add snapshot.toml with a selected package set.
* Allow dismissing "releases" completely
  => allow all builds and set tags:true
* Omitting "tags" and "branch" and "asset"
  => set tags: true
Add version-constraint support for tag-based release resolution by using
normalize_version_spec and SpecifierSet when a version constraint is
present.  For unconstrained tags, keep the legacy strict semver parsing
path.

If the user uses version constraints, maybe synthesize an automatic
open-ended tags release.  This is so that the user only has to configure
frozen, left-behind version/st_build pairs while keeping the standard
newest tag for newest build semantic.

E.g.

```
    "releases": [
        {
            "sublime_text": "<4000",
            "version": "2.5.*"
        }
    ],
```

In the example, the package defines an old version for older sublime
builds.  Here we would add an open-ended release definition, e.g.

```
        {
            "sublime_text": ">=4000",
            "tags": true
        }
```
Move normalize_version_spec into normalize_release_entry for dynamic
release definitions, so constraints are canonicalized once during the
normalize phase.

This allows to treat "*" as non-constraining ("") as per docs.
When deciding whether to synthesize an automatic open-ended tags release,
handle version="*" the same as an empty/missing version constraint.

This avoids generating a synthetic >max release from definitions that are
not actually version-constrained before normalization runs.
@kaste kaste merged commit 61dc6c3 into main Mar 3, 2026
3 checks passed
@kaste kaste deleted the next branch March 3, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant